/* 
	该文件是对axios的二次封装，目的：让整个项目发送ajax请求时，通用的配置不用一遍一遍重复编写了
	注意：本文件专门用于mock请求！！！！
*/
import axios from 'axios'
//引入NProgress做进度条
import NProgress from 'nprogress'
//引入NProgress的样式
import 'nprogress/nprogress.css'

//创建一个axios实例对象，以后整个项目都用这个实例发请求
const mockAjax = axios.create({
  baseURL: '/mock', //请求基本路径
  timeout: 1000, //超时时间
});

//请求拦截器
mockAjax.interceptors.request.use((config)=>{
	//进度条开始走
	NProgress.start()
	//返回配置信息（必须要做）
	return config
})

//响应拦截器
mockAjax.interceptors.response.use(
	//能进入到这个回调代表响应成功了
	response => {
		//进度条停止
		NProgress.done();
		//把服务器返回的真正数据交出去
		return response.data
	},
	//能进入到这个回调代表响应失败了
	error => { 
		//统一提示错误
		alert(error.message)
		//进度条停止
		NProgress.done();
		//返回失败的Promsie实例
		return Promise.reject(new Error(error.message))
	}
)

export default mockAjax


